package com.factory._09Facade;

/**
 * 门面模式（Facade)
 * (1)、门面类（Facade），提供一个统一的接口给客户端调用
 * (2)、各种子系统：OrderSystem、ProductSystem、PaySystem。
 * 结论：
 * 门面模式（外观模式）：提供一个统一接口，集中多个子系统，多个接口方法，提供服务。如编程中MVC模式，C（Controller）即为门面，提供统一入口、M（Model）即提供各种系统服务。
 * 优势：
 * 1、对客户端友好，有统一的入口提供给客户端。
 * 2、对服务调用跟容易管理记录，也更安全。可以想象我们提供一个购物接口肯定比让客户端自己去调创建订单、减少库存、支付更安全，如果客户端忘了调某个服务，就会出现问题。
 * 缺点：
 * 1、门面类耦合了各种服务，较为复杂，容易出错。
 *
 * @author Qinye
 * @date 2023/8/13 12:11
 */
public class Test {
    public static void main(String[] args) {

        Facade facade = new Facade();
        facade.buyABook();
    }
}
